#ifndef IJSON_SERIALISABLE_H_INCLUDED_77985784
#define IJSON_SERIALISABLE_H_INCLUDED_77985784
//-----------------------------------------------------------------------------
// Copyright (c) 2011 David Waby
// Initially created on 11/11/2011
//-----------------------------------------------------------------------------

namespace Json { class Value; }
        
//-----------------------------------------------------------------------------
class IJsonSerialisable
{
public:
									IJsonSerialisable() {};
	virtual							~IJsonSerialisable() {};

	virtual void					Serialise(Json::Value * o_root) const = 0;
	virtual void					Deserialise(Json::Value const * i_root) = 0;

protected:

private:
									IJsonSerialisable(const IJsonSerialisable &rhs);
									IJsonSerialisable& operator = (const IJsonSerialisable &rhs);
};

//-----------------------------------------------------------------------------
#endif // IJSON_SERIALISABLE_H_INCLUDED_77985784
